package Autopista;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author Nati y Pablo
 */
public class Calle{
	/* ******************************** Variables ******************************** */
	private Semaforo semaforo; 
	private String nombre; 
	private Queue<Auto> colaDeAutos = new LinkedList<Auto>();
	
	/* ******************************* Constructor ******************************* */
	public Calle(String nombre, Semaforo semaforo) {
		this.nombre = nombre;
		this.semaforo = semaforo;
		this.semaforo.start(); 
	} 
	
	/* ********************************* Metodos ********************************* */
	public synchronized void agregarAuto (Auto auto){
		this.colaDeAutos.add(auto); 
		auto.start();
	}
	
	public void imprimirAutos (){
		System.out.println("AUTOS DE LA CALLE "+this.getNombre()+": "+this.getColaDeAutos());
	}

	/* ******************************** Get & Set ******************************** */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public Semaforo getSemaforo() {
		return semaforo;
	}
	
	public void setSemaforo(Semaforo semaforo) {
		this.semaforo = semaforo;
	}
	
	public Queue<Auto> getColaDeAutos() {
		return colaDeAutos;
	}
	
	public void setColaDeAutos(Queue<Auto> colaDeAutos) {
		this.colaDeAutos = colaDeAutos;
	}
}
